#ifndef NYU_H_
#define NYU_H_

#include "nyu_common.h"
#include "nyu_tree.h"
#include "nyu_scope.h"
#include "nyu_object.h"
#include "nyu_string.h"

extern FILE *yyin;
extern const char *input_filename;
extern NyuScope *current_scope;

extern int yyparse();

/**
 * Nyuを初期化する
 */
void nyu_initialize();

/**
 * Nyuを終了する
 */
void nyu_finalize();

/**
 * 関数を登録する
 *
 * @param name 関数名
 * @param func 関数ポインタ
 */
void nyu_add_func(char *name, NyuFunc func);

#endif /* NYU_H_ */
